import { RMIProxyObject } from "../../Engine/RMI/RMIProxyObject";
import { IWuXingPrx } from "./IWuXingPrx";
import { AMI_IWuXing_attributeRefresh } from "./AMI_IWuXing_attributeRefresh";
import { SerializeStream } from "../../Framework/Serialize/SerializeStream";
import { Outgoing } from "../../Engine/RMI/Outgoing";
import { AMI_IWuXing_attributeReplace } from "./AMI_IWuXing_attributeReplace";
import { AMI_IWuXing_changeTheSkill } from "./AMI_IWuXing_changeTheSkill";
import { AMI_IWuXing_equipWuxingShengling } from "./AMI_IWuXing_equipWuxingShengling";
import { SeqStringHelper } from "../Public/SeqStringHelper";
import { AMI_IWuXing_feedSpirit } from "./AMI_IWuXing_feedSpirit";
import { AMI_IWuXing_throwTheDice } from "./AMI_IWuXing_throwTheDice";
import { AMI_IWuXing_upgradeSpirit } from "./AMI_IWuXing_upgradeSpirit";
type int = number;
//class IWuXingPrxHelper
    
    export  class IWuXingPrxHelper extends RMIProxyObject implements IWuXingPrx
    {
        constructor()
        {
            
            super();name = "IWuXing";
            return;
        }

        public attributeRefresh_async(arg1: AMI_IWuXing_attributeRefresh, arg2: int, arg3: Boolean, arg4: Boolean): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("attributeRefresh");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            loc3.writeBool(arg3);
            loc3.writeBool(arg4);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public attributeReplace_async(arg1: AMI_IWuXing_attributeReplace, arg2: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("attributeReplace");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public changeTheSkill_async(arg1: AMI_IWuXing_changeTheSkill, arg2: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("changeTheSkill");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public equipWuxingShengling_async(arg1: AMI_IWuXing_equipWuxingShengling, arg2: string, arg3: Array<any>): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("equipWuxingShengling");
            var loc3;
            (loc3 = new SerializeStream()).writeString(arg2);
            SeqStringHelper.write(loc3, arg3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public feedSpirit_async(arg1: AMI_IWuXing_feedSpirit, arg2: int, arg3: string, arg4: int, arg5: Boolean): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("feedSpirit");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            loc3.writeString(arg3);
            loc3.writeInt(arg4);
            loc3.writeBool(arg5);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public throwTheDice_async(arg1: AMI_IWuXing_throwTheDice, arg2: int, arg3: Boolean): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("throwTheDice");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            loc3.writeBool(arg3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public upgradeSpirit_async(arg1: AMI_IWuXing_upgradeSpirit, arg2: int, arg3: string, arg4: Boolean, arg5: Boolean, arg6: Boolean, arg7: Array<any>): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("upgradeSpirit");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            loc3.writeString(arg3);
            loc3.writeBool(arg4);
            loc3.writeBool(arg5);
            loc3.writeBool(arg6);
            SeqStringHelper.write(loc3, arg7);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public static /* const */NAME: string="Message.Game.IWuXing";
    }
